int  old_school()
{
    sf::Image image, brick, bullet;
    ImgMap map;
    Game game(map);
    action act;
    sf::Event event;

    // INIT
    game.init();

    // GRAPHICS
    sf::RenderWindow app(sf::VideoMode(800, 600, 32), "Magic Red Cap");
    sf::Input const & input = app.GetInput();

    if (!image.LoadFromFile("resource/sprite-mog.jpg"))
        return EXIT_FAILURE;
    game.playerSprite->SetImage(image);

    if (!brick.LoadFromFile("resource/brick.png"))
        return EXIT_FAILURE;
    game.mapSprite->SetImage(brick);

    if (!bullet.LoadFromFile("resource/fireball.png"))
        return EXIT_FAILURE;
    game.bulletSprite->SetImage(bullet);

    while (app.IsOpened())
    {
        act.resetBool();

        while (app.GetEvent(event))
        {
            if (event.Type == sf::Event::Closed || app.GetInput().IsKeyDown(sf::Key::Escape))
                app.Close();
        }

        if (input.IsKeyDown(sf::Key::A))
            act.left = true;
        else if (input.IsKeyDown(sf::Key::D))
            act.right = true;
        if (act.prevSpaceUp && input.IsKeyDown(sf::Key::Space))
        {
            act.jump = true;
            act.prevSpaceUp = false;
        }
        else if (!input.IsKeyDown(sf::Key::Space))
            act.prevSpaceUp = true;
        if (act.shoot < FLOAT_LIMIT && input.IsKeyDown(sf::Key::K))
            act.shoot = action::SHOOT_MAX;
        else act.shoot -= app.GetFrameTime();

        // UPDATE
        game.update(app.GetFrameTime(), act);


        // DRAWING
        app.Clear(sf::Color(50, 100, 200));
        game.draw(app);
        app.Display();
    }
    return 0;
}
